(考试时间120分钟,满分100分)
一、选择题((1)~(4)每个选项1分,(41)~(50)每个选项2分,共60分)
下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)通常所说的主机主要包括
A)CPU B)CPU和内存 C)CPU、内存与外存 D)CPU、内存与硬盘
(2)在微机系统中,最基本的输入输出模块BIOS存放在
A)RAM中 B)ROM中 C)硬盘中 D)寄存器中
(3)一个24×24点阵的汉字字形信息所占的字节数为
A)2 B)24 C)32 D)72
(4)bit的意思是
A)字 B)字长 C)字节 D)二进制位
(5)某学校的工资管理程序属于
A)系统程序 B)应用程序 C)工具软件 D)文字处理软件
(6)与十六进制数BB等值的十进制数是
A)187 B)188 C)185 D)186
(7)设一张软盘已染上病毒,能清除病毒的措施是
A)删除该软盘上的所有文件 B)格式化该软盘
C)删除该软盘上的所有可执行文件 D)删除该软盘上的所有批处理文件
(8)一张3.5英寸双面高密度软盘片的容量为
A)360KB B)720KB C)1.44MB D)1.2MB
(9)与二进制小数0.1等值的十六进制小数为
A)0.1 B)0.2 C)0.4 D)0.8
(10)DOS系统的热启动与冷启动的不同之处为热启动时
A)不检测键盘、外设接口与内存
B)不提示用户输入日期与时间
C)不用装入COMMAND.COM文件
D)不能从软盘启动
(11)为了将磁盘上的文件K1,K2,K3,依次连接在文件K4的后面,应使用命令
A)COPY K1+K2+K3 K4
B)COPY K1+K2+K3+K4
C)COPY K1+K2+K3+K4 K4
D)COPY K4+K1+K2+K3
(12)下列文件名中可以作为批处理文件名的是
A)AUTOEXEC.C B)AUTOEXEC C)ATX.BAT D)AUTO.TXT
(13)要打印输出当前盘的根目录下所有文件与子目录清单,应使用命令
A)DIR\>PRN B)TYPE\>PRN C)DIR>PRN D)TYPE>PRN
(14)设可执行文件ABC.EXE所需要的本该由键盘输入的数据已经按格式存放在文件XYZ中,并要求执行结果放在文件XYZ中输入数据的后面。下列命令中正确的是
A)ABC<XYZ>XYZ B)ABC<XYZ>>XYZ C)ABC<<XYZ>XYZ D)ABC>>XYZ
(15)设当前盘中某一目录路径为\A\B\C,当前目录为\A。下列命令中肯定出错的是
A)MD\A\C B)CD.. C)MD\A\B\A D)MD \A\B
(16)设A盘的目录结构如下:
如果当前盘为C盘,A盘的当前目录为\D2,则下列对A盘上文件QR.C的指定中,合法的是
A)\D2\D4\QR.C B)D4\QR.C C)A:D4\QR.C D)A:D2\D4\QR.C
(17)下列DOS命令中,有错误的是
A)TYPE AAB.FOR>CON B)TYPE ? AB.FOR
C)COPY *.C CON D)COPY CON PRN
(18)设当前盘为A盘,为了将当前盘当前目录下的文件 AB1.TXT 连接在C盘根目录下的文件 XYZ.TXT的后面,正确的命令是
A)COPY C:\XYZ.TXT + AB1.TXT
B)COPY AB1.TXT >>C:\XYZ.TXT
C)TYPE AB1.TXT >C:\XYZ.TXT
D)AB1.TXT+C:\XYZ.TXT >C:\XYZ.TXT
(19)下列命令中合法的是
A)DISKCOPY A:A: B)DISKCOPY A:C:
C)DISKCOPY C:A: D)DISKCOPY C:D:
(20)设当前盘中某一目录路径为\A\B\C\D\XU,当前目录为\A。要将根目录下扩展名为.C的所有文件复制到当前目录下,并将扩展名改为.FOR,应使用命令
A)COPY\*.C*.FOR B)COPY *.C\A\*.FOR
C)COPY *.FOR\*.C D)COPY\A\*.C*.FOR
(21)PASCAL编译程序是
A)把PASCAL源程序转换成可运行的EXE文件的程序
B)把PASCAL源程序转换成等价的目标码的程序
C)生成和修改一个PASCAL语言源程序的程序
D)把PASCAL的目标码程序转换成要运行的EXE文件的程序
(22)下列中错误的PASCAL表达式是
A)10e6*3.7 B)17 DIV 3 C)18 DIV 3*4.0 D)4.018 DIV 3
(23)下列哪种类型的常量不能用来定义子界类型
A)Real B)Integer C)Char D)用户定义的任何顺序类型
(24)以下正确的PASCAL实型数是
A)0.56E2.5 B)2.56E2 C)·318E1 D)34.E5
(25)假定所有变量均为实型,算式:的正确的PASCAL表达式是
A) (u+a)/(b-v)/(c-w)+u*d
B) (u+a)/((b-v)/(c-w))+u*d
C) (u+a)/((b-v)/(c-w)+u*d)
D) (u+a)/((b-v/c-w)+u*d)
(26)设x是实型变量,下列哪一个表达式能将x四舍五入后保留二位小数?
A)Round(x) B)Round(x)/100.0
C)Round(x*100.0)/100.0 D)Trunc(x*100.0)/100.0
(27)a1,a2,a3是布尔型变量,分别等于True,True,False,下列表达式的值为False的是
A)NOT a1 AND NOT a2 B)a1 OR a2 AND a3
C)(N0T a1 OR a2)AND (a2 0R a3) D)False OR NOT a1 AND a2 OR NOT a3
(28)设有说明CONST letter=‘h’;
则语句Writeln(Chr(Ord(letter)+(Ord(‘A’)-Ord(‘a’))))输出结果是
A)H B)h C)72 D)104
(29)设a,b,x均是基类型为字符型的集合变量。且a=[‘a’,‘c’,‘f’,‘u’],b=[‘c’,‘d’,‘f’,‘u’],下列哪个赋值语句使x为非空集合?
A)x:a-b-[‘a’] B)x:=a*b-[‘a’]
C)x:a+a*a-a D)x:=(a+a)*(a-a)
(30)下面的输出语句中错误的语句是(各选项中所用的均是单引号)
A)Writeln(’’’$’’is used to mean ’’US doller’’’);
B)Writeln(’The word’’china’’has five letters’);
C)Writeln(’The sign’’$’’is used to mean ’’US doller’’’);
D)Writeln(’The word’china’has five letters’);
(31)已知有说明如下:VAR p,q:^Integer;
a,b:Integer;
下列哪个赋值语句无语法错误?
A)P:=a; B)a:=p+q; C)q^:=p^+a^; D)b:=a+q^;
(32)要设计一个只由主程序调用的子程序(过程或函数),其功能是把参数ch修改后的内容不用全局变量传给主程序,应使用下面哪个过程或函数的首部?
A)PROCEDURE upcase(ch:Char);
B)FUNCTION upcase(ch:Char):Char;
C)FUNCTION upcase(VAR ch:Char);
D)FUNCTION upcase(ch:Char):Integer;
(33)下列说法中正确的是
A)动态变量不能是二维数组
B)动态变量只能是指针类型的变量
C)动态变量不能在程序运行过程中生成和删除
D)动态变量的值是指针变量所指的存储单元的内容
(34)设有说明 TYPE byte=0..7;
word=0..15;
num=Real;
VAR a:byte;b,c:word ;d:Integer;e:num;f:Char;
则下列中不合法的赋值语句是
A)b:=a; B)d:=c; C)e:=d; D)a:=f;
A)TYPE a= RECORD B)VAR x:Real; C)TYPE a=^b; D)TYPE b=RECORD
a1:Integer; y:RECORD b=RECORD b1:Char;
a2:Real; x:Integer; b1:Char; b2:Real
a3:b y:Char; b2:a END;
END; z:RECORD END; a=RECORD
b=RECORD y:Real; VAR x:a; a1:Integer;
b1:Char; z:Boolean; a2:b
b2:Real END END;
END; END;
VAR x:a;
(36)设x,z,m,j为整型变量,且z,m均已赋值,并有程序段:
x:=z;
FOR j:=1 TO m DO
x:=x-1;
下面赋值语句与上述程序段等价的是
A)x:=x-j; B)x:=z-m; C)x:=j-z; D)x:=j+m;
(37)设a,b,c为整型变量且变量已赋值。下面程序段中能实现当a<b时则交换a和b的值的正确程序段是
A)IF a<b THEN B)IF a<b THEN C)IF a<b THEN D)IF NOT (a>b) THEN
REGIN BEGIN BEGIN c:=a; a:=b; b:=c:
c:=a; c:=a; b:=a;
b:=c; a:=b; a:=b
a:=b b:=c END;
END; END;
(38)程序PROGRAM pp(Output);
VAR a,k:Integer;
BEGIN
a:=5;
WHILE a〈10 DO
BEGIN
k:=0;
REPEAT
Writeln(’*’);
k:=k+2
UNTIL k〉a;
a:=a+2
END
END.
执行后输出’*’的个数是
A)11个 B)12个 C)13个 D)15个
(39)若希望得到a=2,b=4,c=6,d=8,针对下面的读语句
Read(a);
Readln(b,c);
Readln(d);
以下不正确的输入形式(〈CR〉表示回车符)是
A)2〈CR〉 B)2〈CR〉 C)2 4〈CR〉 D)2 4 6〈CR〉
4〈CR〉 4〈CR〉 6〈CR〉 8〈CR〉
6〈CR〉 6 8〈CR〉 8〈CR〉
8〈CR〉
(40)已知有类型说明:TYPE t1=(red,yellow,blue);
下面哪个过程可以输出枚举变量a的值?
A)PROCEDURE putout (a:t1); B)PROCEDURE putout (a:t1);
BEGIN BEGIN
CASE a OF CASE Ord(a) OF
‘red’ :Writeln(‘red’); 0:Writeln(‘red’);
‘yellow’:Writeln(‘yellow’); 1:Writeln(‘yellow’);
‘blue’ :Writeln(‘blue’) 2:Writeln(‘blue’)
END END
END; END;
C)PROCEDURE putout (a:t1); D)PROCEDURE putout (a:t1);
BEGIN BEGIN
CASE a OF CASE Ord(a) OF
0:Writeln(‘red’); red :Writeln(‘red’);
1:Writeln(‘yellow’); yellow:Writeln(‘yellow’);
2:Writeln(‘blue’) blue :Writeln(‘blue’)
END END
END; END;
(41)设变量均已说明,下列过程或程序段合法的是
A)PROCEDURE proc1(a:Char; VAR b:Char);
BEGIN
b:=Chr(Ord(a)+1);
proc1:=b
END;
B)PROCEDURE proc2(a,b:Integer);
BEGIN
…
END;
BEGIN{主程序}
…
proc2(2.4,1);
…
END.
C)PROCEDURE proc3(a:Real;VAR b:Real);
BEGIN
…
END;
BEGIN{主程序}
…
x:=1.0;
y:=2.0;
proc3(x+y,x-y);
…
END.
D)PROCEDURE proc4(a,b:Real);
BEGIN
…
END;
BEGIN {主程序}
…
proc4(1,2);
…
END.
(42)下面程序
PROGRAM p1(Output);
VAR a,k:Integer;
BEGIN
a:=13972;k:=0;
WHILE a 〈 〉0 DO
BEGIN
a:=a DIV 10; k:k+1
END;
Writeln(k)
END.
执行后的输出是
A)0 B)4 C)5 D)6
(43)已知有如下类型说明和函数:
TYPE parr= ARRAY [1..20] OF^Integer;
FUNCTION ff(a:parr):Integer;
VAR k,b:Integer;
BEGIN
b:a[1]^;
FOR k:=2 TO 20 DO
IF a[k]^>b THEN
b:=a[k]^
ff:=b
END;
函数ff返回的是
A)指针a所指的整数数组中数的最大值
B)指针数组a中的最大的指针值
C)指针数组a各元素所指的数中的最大值
D)指针a所指的整数数组中数的最小值
(44)阅读下面函数:
FUNCTION func:Integer;
VAR x:Integer;
FUNCTION ff(y:Integer):Boolean;
BEGIN
ff:=(y>=1)AND (y<=12)
END;
BEGIN
REPEAT
Readln(x)
UNTIL NOT ff(x);
func:=x
END;
此函数从键盘接收并只返回特定的值,而不理睬其它值,这些特定的值是
A)大于等于1且小于等于12的任意整数
B)小于等于1或大于等于12的任意整数
C)大于1且小于12的任意整数
D)小于1或大于12的任意整数
(45)有程序段:
s:=[1..5,10..20];
FOR i:=1 TO 5 DO
a[i]:=3*i-4;
FOR i:=1 TO 5 DO
IF a[i] IN s THEN
Write(‘0’)
ELSE
Write(‘1’);
假设变量均已说明,则程序段运行后的输出为
A)10110 B)00111 C)10010 D)11010
(46)下列程序中输出为1 -1的是
A)PROGRAM one(Output);
VAR a,b:Integer;
PROCEDURE procl(x,y:Integer);
BEGIN
x:=a+b;
y:=a-b;
Writeln (x:3,y:3)
END;
BEGIN
a:=1;
b:=2;
procl(a,b)
END.
B)PROGRAM two(Output);
VAR a,b:Integer;
PROCEDURE proc2(x,y:Integer);
BEGIN
x:=a+b;
y:=a-b
END;
BEGIN
a:=1;
b:=2;
proc2(a,b);
Writeln(a:3,b:3)
END.
C)PROGRAM three(Output);
VAR a,b:Interger;
PROCEDURE proc3(x:Integer;VAR y:Integer);
BEGIN
x:=a+b;
y:=a-b;
END;
BEGIN
a:=1;
b:=2;
proc3(a,b);
Writeln(a:3,b:3)
END.
D)PROGRAM four(Output);
VAR a,b:Integer;
PROCEDURE proc4(x:Integer;VAR y:Integer);
BEGIN
x:=a+b;
y:=a-b
END;
BEGIN
a:=1;
b:=2;
proc4(b,a);
Writeln(a:3,b:3)
END.
(47)设有过程pl的说明如下(仅给出过程的主要部分)
PROCEDURE pl;
VAR a,b:Integer;
c,d:Char;
PROCEDURE p2(VAR e:Integer);
VAR b,f:Real;
BEGIN
…
END;
BEGIN
…
END.
在过程p2中,对变量e最适当的描述是
A)e是一个值型参数. B)e是一个全局变量.
C)e是一个形式参数. D)e是一个实际参数.
(48)已知有过程:
PROCEDURE graph(hight:Integer;ch1,ch2:Char);
VAR i,j:Integer;
BEGIN
FOR i:=1 TO hight DO
BEGIN
Write(ch1:10-i);
FOR j:=1 TO 2*i-3 DO
Write(ch2);
IF i=1 THEN
Writeln
ELSE
Writeln(ch1)
END
END;
若在主程序中执行graph(6,‘*’,‘+’)则输出图形是
A) * B)*+++++++++*
*+* *+++++++*
*+++* *+++++*
*+++++* *+++*
*+++++++* *+*
*********** *
C) + *
+*+ D) *+*
+***+ *+++*
+*****+ *+++++*
+*******+ *+++++++*
+*********+ *+++++++++*
(49)已知有函数fl如下:
FUNCTION f1(a,b:Integer):Integer;
BEGIN
IF b=0 THEN
f1:=a
ELSE
f1:=f1(Pred(a),Pred(b))
END;
执行Writeln(f1(10,6));后的输出是
A)4 B) 6 C)10 D)16
(50)程序FROGRAM p1(Output);
VAR a:ARRAY[1..4] OF Char;
c,ch:Char;
BEGIN
FOR ch:=‘A’ TO ‘D’ DO
a[Ord(ch)-Ord(‘A’)+1]:=ch;
FOR ch:=‘A’ TO ‘D’ DO
BEGIN
FOR c:=ch TO ‘D’ DO
Write (a[Ord(c)-Ord(‘A’)+1]);
Writeln
END
END.
的输出是
A)A B)D C)ABCD D)ABCD
B C ABC BCD
C B AB CD
D A A D
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡~序号的横线上,答在试卷上不得分。
(1)自动批处理文件名为。
(2)DOS命令分为内部命令与外部命令,COMP命令属于命令。
(3)设当前盘为C盘,现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为.DAT的文件内容。这一条DOS命令应为。
(4)要将当前盘当前目录下的子目录XYZ中所有扩展名为.BAK的文件名改成扩展名为.FOR,应使用的DOS命令为。
(5)设DOS外部命令文件所在的路径均已用PATH命令打通。现要将当前盘当前目录下的文件WST.TXT设置为只读属性,应使用的DOS命令为。
(6)下面程序计算并输出下式中s的值
请填空完成程序。
PROGRAM t6(Input,0utput);
VAR k,n:Ineger;
s,r:Real;
BEGIN
s:=;
FOR k:=2 TO 20 DO
BEGIN
r:=0;
FOR n:=1 T0 DO
r:=r+Ln(n);
s:=s+
END;
Writeln(s:10:3)
END.
(7)下面的程序将n个学生的英文成绩从键盘输入,按0~59分,60 ~69分,70~79分,80~89,90~100分,分组统计人数。
PROGRAM exam2(Input,Output);
CONST n=20;
VAR i,k:Integer;
s:ARRAY[1..5] OF Integer;
a:ARRAY[1..n] OF Integer;
BEGIN
FOR i:=1 TO DO
s[i]:=0;
FOR i:=1 TO DO
BEGIN
;
IF a[i]>=90 THEN k:=1
ELSE IF a[i] >=80 THEN k :=2
ELSE IF a[i] >=70 THEN k:=3
ELSE IF a[i] >=60 THEN k:=4
ELSE k:=5
s[k]:=
END;
Readln;
FOR i:=1 TO 5 DO
Write (s[i]:3);
Writeln
END.
(8)从键盘输入两个数x1,x2,判断它们是否互质。
判断两数是否互质的方法是:设大数为x1,小数为x2,如果 x1/x2为整数,财非互质,如果x2和x1同时被2~x2/2间任一整数整除,则x1和x2也非互质。其它情况均为互质。
PROGRAM sj11(Input ,Output);
VAR x1,x2,t,n,i:Integer;
yes :Boolean;
BEGIN
Write(‘Please input x1,x2:’);
Readln(x1,x2);
IF( )THEN
BEGIN
t:x1,x1:=x2,x2:=t
END;
yes:=True:
IF (x1 MOD x2)=0 THEN
yes:=False
ELSE BEGIN
n:=x2 DIV 2;
FOR i:=2 TO DO
IF THEN
yes:=False
END ;
IF THEN
Writeln('They are mutual prime numbers') {x1,x2互质}
ELSE
Writeln('They are not mutual prime numbers'){x1,x2非互质}
END.
(9)已知有说明:TYPE ptr=^rec;
rec=RECORD
data:Integer;
next:ptr
END;
函数append 可建立一个无重复结点的单链表。则该函数检查已建立的结点中是否有data域与n相等的节点,若有这样的节点则原链表不变,并返回假,否则以n作为一个新节点间链在原链表之后,并返回真。
PUNCTION append (VAR head :ptr ;n:Integer):Boolean;
VAR r,p,q:ptr;
linked:Boolean;
BEGIN
linked:=True ;New(q);
q^.next:=NIL;q^.data:=n;
IF head=NIL THEN
:=q
ELSE
BEGIN
p:=head;
REPEAT
r:=p;
IF P^.data=n THEN
linked:=False
ELSE
IF < > NIL THEN
p:=p^.next
UNTIL ()OR NOT linked;
IF linked THEN
:=q
ELSE
Dispose(q)
END;
append:=linked
END;